//
//  DCOSSDDownloadOpration.h
//  DCDownloadOpration
//
//  Created by collegepre on 16/7/26.
//  Copyright © 2016年 Wade. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <AliyunOSSiOS/OSSService.h>
#import "DCDownload.h"

@class CPDownloadInfo;

@interface DCOSSDDownloadOpration : NSObject

@property (copy,nonatomic) CPDonwloadCompliction donloadCompliction;

@property (copy,nonatomic) CPDownloadProgress progressBlock;

@property (copy,nonatomic) CPDownloadUnzipProgress unziprogress;

@property (copy,nonatomic) CPDownloadUnzipProgress decryptMediaProgress;

@property (nonatomic, assign) NSInteger  totleLength;

/**
 *  是否是暂停状态
 */
@property (nonatomic, assign,readonly) BOOL  isSpuased;

/**
 *  OSS下载key值 可用于唯一标识下载进度
 */
@property (copy,nonatomic) NSString *osskey;


+ (instancetype)shareOSSDownloadOpration;

/**
 *  根据下载信息对象下载课件包内容  可以自动判断是否是断点下载
 *
 *  @param info                 下载信息
 *  @param progress             进度回调
 *  @param complition           完成回调
 *  @param unzipProgress        解压进度回调
 *  @param decryptDediaProgress 解密进度回调
 *
 *  @return 下载对象 可以通过对象对下载的进度进行回调监控
 */
- (void)CPOSSDownloadWithDownloadInfo:(CPDownloadInfo *)info downloadProgress:(CPDownloadProgress)progress complition:(CPDonwloadCompliction)complition;


/**
 *  OSS服务器文件上传方法<因暂时无大文件上传,暂不提供断点上传功能>
 *
 *  @param filePath 文件路径
 *  @param fileName 上传的文件名
 *  @param sucess   成功回调
 *  @param fail     失败回调
 */
- (void)upLoadFiletoAliyunServerWithPngName:(NSString *)filePath uploadFileName:(NSString *)fileName uploadSucess:(void (^)(NSString *))sucess fail:(void (^)())fail;


/**
 *  OSS服务器直接文件下载功能 每次都是从头开始下载
 *
 *  @param url     OSS服务器直接文件下载功能
 *  @param filePath     缓存路径
 *  @param downloadProgress  进度回调
 *  @param complition     完成回调
 */
- (void)OSSDownloadWithOSSobjectKey:(NSString *)objectKey detectPath:(NSString *)filePath downloadProgress:(CPDownloadProgress)progress complition:(CPDonwloadCompliction)complition;


/**
 *  根据下载信息对象下载课件包内容  可以自动判断是否是断点下载
 *
 *  @param info                 下载信息
 *  @param progress             进度回调
 *  @param complition           完成回调
 *  @param unzipProgress        解压进度回调
 *  @param decryptDediaProgress 解密进度回调
 *
 *  @return 下载对象 可以通过对象对下载的进度进行回调监控
 */
//+ (DCOSSDDownloadOpration *)CPOSSDownloadByURLWithDownloadInfo:(CPDownloadInfo *)info downloadProgress:(CPDownloadProgress)progress complition:(CPDonwloadCompliction)complition;
@end
